package com.learning.generator.core;

import com.learning.generator.config.XxxGeneratorProperties;

import java.util.List;

public class DefaultBaseInfoConstant {
    /**
     * 数据库链接地址
     **/
    public static String JDBC_URL_MAN;
    /**
     * 数据库登录账号
     **/
    public static String JDBC_UserName;
    /**
     * 数据库登录密码
     **/
    public static String JDBC_Password;
    /**
     * 【需要修改】
     * 需要进行生成文件的表名
     * 多张表，表名间使用,号分割
     **/
    public static String[] Tables;
    public static String[] table_prefix;
    public static String PROJECT_PATH;

    /**
     * 【需要修改】
     * 生成类的注释
     * 作者名称
     */
    public static String CODE_AUTHOR;
    /**
     * 代码描述注释的日期格式
     */
    public static String COMMENT_DATE_PATTERN;

    /**
     * 生成的文件存放地址 之
     * 文件路径
     */
    public static String CODE_OUTPUT_DIR;
    /**
     * 生成的文件存放地址 之
     * 父级 jar包路径
     */
    public static String CODE_PARENT_PACKAGE;
    /**
     * 工程模块
     * 微服务多模块项目需要配置
     */
    public static String CODE_MODULE_NAME;
    /**
     * 生成的文件存放地址 之
     * controller 存放地址
     */
    public static String CONTROLLER_PACKAGE;
    /**
     * 生成的文件存放地址 之
     * Service 接口 存放地址
     */
    public static String SERVICE_PACKAGE;
    /**
     * 生成的文件存放地址 之
     * Service impl 实现类 存放地址
     */
    public static String SERVICE_IMPL_PACKAGE;

    /**
     * 生成的文件存放地址 之
     * entity  实体类 存放地址
     */
    public static String ENTITY_PACKAGE;

    /**
     * 生成的文件存放地址 之
     * mapper  操作类 存放地址
     */
    public static String MAPPER_PACKAGE;


    /**
     * 生成的文件存放地址 之
     * mapper  xml 文件 存放地址
     */
    public static String XML_RESOURCE_PACKAGE;


    /**
     * 自定义 、定制 生成的文件存放地址 之
     * other 其他文件 存放地址
     */
    public static String FILE_STORAGE_OTHER_FILE_JAR_PACKAGE;
    public static String SUPER_CLASS;
    public static List<String> SUPER_ENTITY_COLUMN_LIST;

    public static void baseInfoInit(XxxGeneratorProperties xxxGeneratorProperties) {
        JDBC_URL_MAN = xxxGeneratorProperties.getJdbcUrl();
        JDBC_UserName = xxxGeneratorProperties.getJdbcUserName();
        JDBC_Password = xxxGeneratorProperties.getJdbcPassword();
        Tables = xxxGeneratorProperties.getTables();
        table_prefix = xxxGeneratorProperties.getTablePrefix();
        CODE_AUTHOR = xxxGeneratorProperties.getCodeAuthor();
        PROJECT_PATH = xxxGeneratorProperties.getProjectPath();
        CODE_MODULE_NAME = xxxGeneratorProperties.getCodeModuleName();
        CODE_OUTPUT_DIR = PROJECT_PATH + xxxGeneratorProperties.getCodeOutputDir();
        CODE_PARENT_PACKAGE = xxxGeneratorProperties.getCodeParentPackage();
        CONTROLLER_PACKAGE = xxxGeneratorProperties.getControllerPackage();
        SERVICE_PACKAGE = xxxGeneratorProperties.getServicePackage();
        SERVICE_IMPL_PACKAGE = xxxGeneratorProperties.getServiceImplPackage();
        ENTITY_PACKAGE = xxxGeneratorProperties.getEntityPackage();
        MAPPER_PACKAGE = xxxGeneratorProperties.getMapperPackage();
        XML_RESOURCE_PACKAGE = PROJECT_PATH + xxxGeneratorProperties.getXmlResourcePackage();
        COMMENT_DATE_PATTERN = xxxGeneratorProperties.getCommentDatePattern();
        SUPER_CLASS = xxxGeneratorProperties.getSuperClass();
        SUPER_ENTITY_COLUMN_LIST = xxxGeneratorProperties.getSuperEntityColumnList();
    }
}
